package day7;

public class Student {
	// 实例变量：必须new出对象来通过(对象.id)的方式调用
	public int id;
	public String name;
	public int age;
	// static修饰的静态变量，是属于类的，所有new出来的Student对象都可以共享
	public static String country = "CN";
	
	public Student() {
		super();
	}

	public Student(int id, String name, int age) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	// 实例方法：属于对象，这个方法要调用必须new出一个对象，
	// 通过对象.print()的方式进行调用
	public void print() {
		System.out.println("Student.print()");
		// this代表当前new出来Studet对象
		System.out.println(this.age);
		super.toString();
		show();
	}
	
	// 静态方法是属于类的，类加载完就可以调用，而实例方法只有new出对象才能调用
	// 在静态方法里面不能调用实例变量和实例方法
	public static void show() {
		// Cannot use this in a static context
		//this.id = 4;
		//System.out.println(this.age);
		System.out.println("Student.show()");
		// show方法是静态的，不需要new对象就可以调用，show方法里面
		// 如果能调用print()，而print()必须new出一个对象才能调用
		// Cannot make a static reference to the non-static method print() from the type Student
		// print();
	}
	
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
	
	
}
